package com.yjn.baidumap_hello;

import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BaiduMap.OnMarkerDragListener;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.Marker;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.model.LatLng;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

public class MainActivity extends Activity {

	private MapView mMapView;

	// 定义 BaiduMap 地图对象的操作方法与接口
	private BaiduMap mBaiduMap;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// 在应用程序创建时初始化 SDK 引用的 Context 全局变量
		// 在使用SDK各组件之前初始化context 信息，传入ApplicationContext
		// 注意该方法要再setContentView 方法之前实现
		SDKInitializer.initialize(getApplicationContext());
		setContentView(R.layout.activity_main);

		// 获取地图控件引用
		mMapView = (MapView) findViewById(R.id.bmapView);
		// 实例化地图对象的操作方法与接口对象
		mBaiduMap = mMapView.getMap();
		// 设置地图类型
		// 普通地图
		mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
		// 卫星地图
		// mBaiduMap. setMapType(BaiduMap. MAP_TYPE_SATELLITE) ;

		// 开启交通图
		// mBaiduMap. setTrafficEnabled(true) ;

		// 定义Maker 坐标点
		// 地理坐标基本数据结构
		LatLng point = new LatLng(39.963175, 116.400244);
		// 构建Marker 图标
		BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.deng_72);

		/*
		 * // 构建MarkerOption，用于在地图上添加Marker OverlayOptions option = new
		 * MarkerOptions().position(point).icon(bitmap);
		 * 
		 * // 在地图上添加Marker，并显示 mBaiduMap.addOverlay(option);
		 */

		// 第一步，设置可拖拽：
		OverlayOptions options = new MarkerOptions().position(point) // 设置marker的位置
				.icon(BitmapDescriptorFactory.fromResource(R.drawable.deng_72)) // 设置marker 图标
				.zIndex(9) // 设置marker 所在层级
				.draggable(true); // 设置手势拖拽
		// 将marker 添加到地图上
		Marker marker;
		marker = (Marker) (mBaiduMap.addOverlay(options));
		// 第二步，设置监听方法：
		// 调用BaiduMap 对象的setOnMarkerDragListener 方法设置marker 拖拽的监听
		mBaiduMap.setOnMarkerDragListener(new OnMarkerDragListener() {
			public void onMarkerDrag(Marker marker) {
				// 拖拽中
			}

			public void onMarkerDragEnd(Marker marker) {
				// 拖拽结束
				LatLng latLng = marker.getPosition();
				Toast.makeText(MainActivity.this, "Y="+latLng.latitude+">>"+"X="+latLng.longitude, 1).show();
			}
			public void onMarkerDragStart(Marker marker) {
				// 开始拖拽
			}
		});
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		// 在activity 执行onDestroy 时执行mMapView.onDestroy() ，实现地图生命周期管理
		mMapView.onDestroy();
	}

	@Override
	protected void onResume() {
		super.onResume();
		// 在activity 执行onResume 时执行mMapView. onResume () ，实现地图生命周期管理
		mMapView.onResume();
	}

	@Override
	protected void onPause() {
		super.onPause();
		// 在activity 执行onPause 时执行mMapView. onPause () ，实现地图生命周期管理
		mMapView.onPause();
	}

}
